home *** CD-ROM | disk | FTP | other *** search
- {
- > I did, as I said "I couldn't get anything to work". No functions that
- > I called returned the expected results, or maybe I wasn't doing something
- > correctly, in any case it would be easier if someone was to post
- > information on how I do something like this:
-
- There is an easy way to convert strings using the national conversion tables
- using DOS function $6521 (4.0 up). I'm using these two implementations:
-
- MS-DOS function $6521
- Version 4.0 up
- Converts string at address DS:DX
- of length CX
- }
-
- procedure cap(var s:string);
- { converts string S to uppercase
- procedure version
- }
- assembler;
- asm
- push ds
- lds si,s
- mov cl,[si]
- xor ch,ch
- jcxz @Exit
- lea dx,[si+1]
- mov ax,$6521
- int 21h
- @Exit:
- pop ds
- end;
-
- function fcap(s:string):string;
- (* TP 7.0
- function fcap(const s:string):string;
- *)
- { converts string S to uppercase
- function version
- }
- assembler;
- asm
- push ds
- lds si,s
- cld
- lodsb
- mov cl,al
- xor ch,ch
- jcxz @Exit
- les di,@Result
- stosb
- mov dx,di
- push cx
- rep movsb
- push es
- pop ds
- pop cx
- mov ax,$6521
- int 21h
- @Exit:
- pop ds
- end;